1. Field
Embodiments of the invention relate to dynamic Graphical User Interface (GUI) rendering by aggregation of device capabilities.
2. Description of the Related Art
Device specific Graphical User Interfaces (GUIs) are commonly used to manage devices (e.g., storage subsystems). This creates the problem of vendor lock and large code modifications to support new devices. Vendor lock may be described as a problem in which GUIs for a device relate specifically to one vendor that makes that device. Sometimes, it is desirable to be able to switch vendors of that device (i.e., provide a device from a different vendor) without exposing this transition to customers. When the GUIs are specific to a particular vendor, customers need to retrain to use this new device. This forces companies that provide the devices to maintain long term relationships with vendors in order to avoid disruption to customers.
Some systems use a Storage Management Initiative—Specification (SMI-S) component to manage multiple heterogeneous devices. SMI-S is a storage standard developed and maintained by the Storage Networking Industry Association (SNIA). SMI-S is directed to interoperability among heterogeneous devices.
While the problem of vendor lock may be solved by SMI-S, making large code modifications is problematic. Different devices have different capabilities and customer expectations. Device capabilities may be described as features of the device or functionality of the device (i.e., what the device can do). SMI-S provides the ability to add device specific functionality. Each device exposes capabilities that separate that device from other devices in the market place. Additionally, different devices have different customers with different needs. For example, an IBM® System Storage DS8000 system may have enterprise users who would like to understand the architecture in fine details. On the other hand, an IBM® TotalStorage DS400 system may have users who would prefer a level of detail that hides complicated concepts of storage architecture. The diversity of devices and users makes it difficult to write one GUI to manage multiple devices.
One solution is to write two separate GUIs for each of two different devices, with the two GUIs sitting on top of a common layer of code. Though this common layer of code saves some coding effort, more automation and structure are needed.
Also, when one GUI supports many devices, then every time a device is added, the GUI should be updated. Currently, this requires a new update for all devices.
Thus, there is a need in the art for dynamic GUI rendering by aggregation of device capabilities.